package com.wl.dzt.sys.core.dao.curd.sql.el;


import com.wl.dzt.sys.core.dao.select.term.Term;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author wl_code@163.com
 * @version 1.0
 * @date 2018/7/5/005
 * @description 查询语句分组
 * 根据占位符，对要进行拼接的sql语句进行拼接和占位.已便将查询语句插入不同的位置.
 */
public class SqlGroup {

    /**
     * <b>分组 </b>
     * <p>
     * 对查询条件对象归位分组
     * </p>
     *
     * @param list
     * @return Map
     */
    public static Map<String, List<Term>> group(List<Term> list) {
        Map<String, List<Term>> map = new HashMap<>();
        map.put("@", new ArrayList<>());
        for (Term term : list) {
            String g = term.getGroup();
            if (g != null) {
                if (map.get(g) == null) {
                    map.put(g, new ArrayList<>());
                }
                map.get(g).add(term);
            } else {
                map.get("@").add(term);
            }
        }
        return map;
    }
}
